package com.yantong.service;

import com.yantong.utils.PageUtils;
import com.yantong.pojo.WdListParams;
import com.yantong.pojo.Withdrawals;
import com.yantong.pojo.OrderWithdrawals;

import java.math.BigDecimal;
import java.util.List;

/**
 * 提现记录服务
 * @author kanghaixin
 * @date 2018/9/16.21:04
 */
public interface WithdrawalsService {

    /**
     * 获取提现申请记录
     * @param params
     * @param offset
     * @param limit
     * @return
     */
    PageUtils<Withdrawals> listWithdrawals(WdListParams params, int offset, int limit);

    /**
     * 提现申请记录  不分页
     * @param params
     * @return
     */
    List<Withdrawals> listWithdrawals(WdListParams params);

    /**
     * 更新提现记录
     * @param withdrawals
     * @return
     */
    int updateWithdrawals(Withdrawals withdrawals);

    /**
     * 提现审核拒接
     * @param bwId
     * @param aid
     * @param aName
     * @return
     */
    int cashRefuse(Long bwId, Long aid, String aName);

    /**
     * 提现线下打款
     * @param bwId
     * @param payId
     * @param payName
     * @return
     */
    int offlinePay(Long bwId, Long payId, String payName);

    /**
     * 提现 微信打款
     * @param bwId
     * @param payId
     * @param payName
     * @return
     */
    int wxPay(Long bwId, Long payId, String payName);


	/**
	 * 易票联批量银行卡打款
	 * @param id
	 * @param userId
	 * @param nikeName
	 */
	int yfzBankPay(Long bwId, Long payId, String payName);

	/**
     * 供应商/会员提现批量回调
     * @param id
     * @return
     */
	int batchUpdateBankPay(Long bwId, Long payId, String payName);
	/**
     * 根据状态查找第三方代付记录表
     * @param transts
     * @param rowBounds
     * @return
     */
	PageUtils<OrderWithdrawals> getOrderWithdrawalsByTransts(WdListParams wdListParams, int offset, int limit);
	
	/**
     * 根据状态查找第三方代付记录表 无分页
     * @param transts
     * @param rowBounds
     * @return
     */
	List<OrderWithdrawals> getOrderWithdrawalsByTranstsList(WdListParams wdListParams);
	
//	/**站点提现批量回调
//	 * @param id
//	 * @param userId
//	 * @param nikeName
//	 * @return
//	 */
//	int batchCentrUpdateBankPay(Long id, Long userId, String nikeName);

	BigDecimal getMemberCashedCount(Long productId);

}
